Non-volatile memory (NVM) such as NAND flash, NOR flash, phase-change memory (PCM) has become popular as storage devices have been designed to use them. One of the important properties is that NVM can hold data stored thereon without power similar to hard disk drive.
Advantages of using non-volatile memory as data storage over hard disk drive are as follows:
(1) No moving parts;
(2) No noise or vibration caused by the moving parts;
(3) Higher shock resistance;
(4) Faster startup (i.e., no need to wait for spin-up to steady state);
(5) Faster random access;
(6) Faster boot and application launch time; and
(7) Lower read and write latency (i.e., seek time).
However, NVM has other drawings and shortcomings, for example, the NVM may only be written a limited number of times. Different NVM has different characteristics such as sector addressable for the flash or byte addressable for PCM; different programming rules for Multi-level cell (MLC) flash memory and Single-level cell (SLC) flash memory.
Moreover, NVM needs a controller such that the management and control of the NVM can be conducted without a host computer system. Today, the NVM controller and the NVM modules are generally manufactured separately. Therefore it would be desirable to a NVM controller can be configured to control different types of NVM. And it is further desired to have a NVM controller integrated with the NVM modules in a non-volatile memory device.